1. Field of the Invention
This invention relates, in general, to a system and method for handling multiple windows displayed on a display device, and in preferred embodiments, to a method for determining the order of display of windows on a display device, where parts of the windows occupy the same horizontal line of display.
2. Background of the Invention
In their earliest forms, display systems such as televisions or computer monitors displayed a single program or series of images from a single source, such as a selected television station or program. Within the field of television, a xe2x80x9cpicture-in-picturexe2x80x9d system was developed. The xe2x80x9cpicture-in-picturexe2x80x9d system allowed a television to display a television program on the entire screen, in conventional format, and in addition to display a smaller picture from a different channel, in shrunken form, on the same screen. In essence, such systems comprised two television pictures on one screen, a main picture comprising a standard television picture and a smaller subpicture called the PIP (xe2x80x9cpicture-in-picturexe2x80x9d). Typically, the PIP was less than xc2xc of the size of the screen. The PIP ordinarily resided in the lower right quadrant of the main picture, though with a border of the main picture surrounding the PIP. Typically, the PIP provided an apparently complete image of the second channel to the viewer. In actuality, various bits of information, commonly denominated as pixels, were dropped from the actual displayed PIP, given the relatively smaller size of the PIP, the image appeared substantially complete to the viewer.
Analog television technology generally did not permit the displaying of multiple images from multiple channels, such as in a PIP system. In the case of analog television technology, the main picture set to a first channel was derived from a first television station and the second channel for the PIP was derived from a second television station. Since the analog television system displayed images via a raster scanned CRT, where the image information was received via the broadcast and synchronized with the monitor by a timing pulse (sync pulse), there was no necessary correlation for synchronization between the two channels. By way of example, one channel could be scanning the upper left portion of the picture while the second channel would be scanning the bottom left portion of the picture. Synchronization in analog systems was generally not feasible.
Digital electronics has facilitated the generation of overlapping displays. In certain versions, a main picture was generated and displayed as before. The PIP was generated by a PIP circuit which stored images, or selected pixels of the image, coming from the second channel. Information regarding the scanning location on the main picture was provided to the PIP circuitry. Through this synchronization, the PIP circuitry provided output to the screen or monitor at the appropriate time. The image information in the PIP circuitry was stored in digital memory. That image information was updated as received from the channel. In this way, the raster scanned display provided the main picture, as received, from the television station and the PIP circuitry provided a imperceptibly delayed PIP. In this way, the synchronization problem was overcome.
In computer systems, the difficulty of displaying more than one source of information on a display was somewhat mitigated by the fact that the information, to be displayed was typically coming from a single source, i.e. from within the computer. A computer display may contain various windows produced by different programs, but because the display data is being produced by a single source, there is no synchronization of scans to accommodate. Such display windows typically contained static information and a graphics memory, and could be built from such information, prior to being displayed.
Modern display applications, such as in set top boxes, are producing display requirements that incorporate the requirements of a picture in picture display, as well as the requirements of a computer windowing display, in a single application. Modern display applications are producing requirements that are more demanding than picture in picture displays on a television, or windowing displays on a computer. For example a set top box may require the display of several video inputs, on several display windows, along with several program generated displays, such as channel displays, electronic program guides (EPG), and the like in other windows. These requirements may also include displays which turn on and off, or spontaneously change display positions, such as closed caption displays. In addition the resolution of displays has continually increased, raising the amount of data which must be displayed to form a picture. Because of the more demanding display system requirements, manufacturers have increasingly sought efficient display methods and apparatus. In some applications display lines are constructed shortly before the need to display them. Constructing display lines shortly before using them has an advantage in that the less time that is needed between the construction of the line and the display of the line, the less memory that will be required to contain the line data between the time it is constructed and the time it is displayed. In other words if a display line could be constructed as it were used, then there would effectively be no need to store any intermediate data before being displayed. As the time between constructing the lines and displaying the lines increases so does the amount of display memory required. Typically display memory is a higher speed and more expensive memory than system memory. High speed display memory is also commonly integrated into the display chip, where space is at a premium.
In applications, where display lines are constructed shortly before the need to display the line, the need arises to include data from several windows on the same display line. To include several windows on the same display line, a given display line must be constructed from the data, from the windows to be displayed. The data from the various windows, to be displayed on a screen, must be combined to produce a display line. The order in which the data from several windows is combined is dependent on the position of the windows of the display. Because the memory requirements, for display line storage, increases as the time to construct a display line increases, methods for quickly and easily determining the order in which the data from the windows are combined can reduce memory requirements. Techniques and apparatus which can reduce memory requirements are needed within the art.
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present disclosure encompasses a novel method of sorting windows which appear on the same line of a display.
Windows need to be sorted for a variety of reasons. For example when creating a display line which displays a number of windows the data for the display line,may be inserted into a display queue. To insert the data into the display queue in the proper order the windows need to be sorted so that the data from the window to be displayed first is inserted into the display queue first.
In an illustrative example of the method a line to be displayed is selected. A first window, which is to be sorted because it appears on a line to be displayed, is selected. The starting position of the first window is then compared top all other windows which appear on the same line to be displayed. The result of the comparison is assigned a numerical value, for example a 1 if the window appears on the display before the first window and a 0 if the window does not appears on the display before the first window. The first window is compared, in the fashion just described, to all other windows which appear on the line to be displayed. All the values of the comparisons are then added and the resulting sum assigned to that window. The resulting sum of the comparisons will equal a number which is indicative of the order, in which the window to be sorted appears on the line to be displayed, in comparison to the other windows. By repeating the just described procedure with every window on the line the windows will be assigned numbers which are indicative of the order the windows appear.
Another aspect of the present invention is that a system, in accordance with the principles of the present disclosure, may include a hardware implementations of the method, thereby altering the performance of the system. By comparing the starting window positions using hardware comparators instead of software all comparisons may easily be made in parallel, so that the time to make any number of comparisons is the same as the time it takes to make a single comparison. The comparison time does not increase as more windows are added. The result of the comparisons may also be added in a hardware implementation, so that the addition of any number of window comparisons will take the same amount of time as the addition of the results of the comparisons for one window. These hardware techniques can significantly speed up the determination of window order on a display, thereby reducing the amount of intermediate data storage that is needed when the window order is determined.
These and various other advantages and features of novelty, which characterize the invention, are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there are illustrated and described specific examples of an apparatus in accordance with the invention.